diff --git a/system/database/DB_utility.php b/system/database/DB_utility.php
index b17b3d5..8e1921d 100644
--- a/system/database/DB_utility.php
+++ b/system/database/DB_utility.php
@@ -210,7 +210,6 @@
 
 
 
-
 	function create_table()
 	{
 	}
diff --git a/system/database/drivers/mssql/mssql_utility.php b/system/database/drivers/mssql/mssql_utility.php
index bc398e7..61fe5fc 100644
--- a/system/database/drivers/mssql/mssql_utility.php
+++ b/system/database/drivers/mssql/mssql_utility.php
@@ -34,7 +34,7 @@
 	 */
 	function create_database($name)
 	{
-		return $this->db->query("CREATE DATABASE ".$this->db->_escape_table($name));
+		return $this->db->query("CREATE DATABASE ".$name);
 	}
 
 	// --------------------------------------------------------------------
@@ -48,7 +48,7 @@
 	 */
 	function drop_database($name)
 	{
-		return $this->db->query("DROP DATABASE ".$this->db->_escape_table($name));
+		return $this->db->query("DROP DATABASE ".$name);
 	}
 
 	// --------------------------------------------------------------------
@@ -75,6 +75,19 @@
 	}
 
 	// --------------------------------------------------------------------
+
+	/**
+	 * Drop Table
+	 *
+	 * @access	public
+	 * @return	bool
+	 */
+	function drop_table($table)
+	{
+		"DROP TABLE ".$this->db->_escape_table($name);
+	}
+
+	// --------------------------------------------------------------------
 	
 	/**
 	 * Version number query string
diff --git a/system/database/drivers/mysql/mysql_utility.php b/system/database/drivers/mysql/mysql_utility.php
index 5bbf468..23c4e09 100644
--- a/system/database/drivers/mysql/mysql_utility.php
+++ b/system/database/drivers/mysql/mysql_utility.php
@@ -33,7 +33,7 @@
 	 */
 	function create_database($name)
 	{
-		return $this->db->query("CREATE DATABASE ".$this->db->_escape_table($name));
+		return $this->db->query("CREATE DATABASE ".$name);
 	}
 
 	// --------------------------------------------------------------------
@@ -47,7 +47,7 @@
 	 */
 	function drop_database($name)
 	{
-		return $this->db->query("DROP DATABASE ".$this->db->_escape_table($name));
+		return $this->db->query("DROP DATABASE ".$name);
 	}
 
 	// --------------------------------------------------------------------
@@ -76,6 +76,19 @@
 	// --------------------------------------------------------------------
 
 	/**
+	 * Drop Table
+	 *
+	 * @access	public
+	 * @return	bool
+	 */
+	function drop_table($table)
+	{
+		"DROP TABLE IF EXISTS ".$this->db->_escape_table($name);
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
 	 * Version number query string
 	 *
 	 * @access	public
diff --git a/system/database/drivers/mysqli/mysqli_utility.php b/system/database/drivers/mysqli/mysqli_utility.php
index 14a6ef8..ca8f3fe 100644
--- a/system/database/drivers/mysqli/mysqli_utility.php
+++ b/system/database/drivers/mysqli/mysqli_utility.php
@@ -33,7 +33,7 @@
 	 */
 	function create_database($name)
 	{
-		return $this->db->query("CREATE DATABASE ".$this->db->_escape_table($name));
+		return $this->db->query("CREATE DATABASE ".$name);
 	}
 
 	// --------------------------------------------------------------------
@@ -47,7 +47,7 @@
 	 */
 	function drop_database($name)
 	{
-		return $this->db->query("DROP DATABASE ".$this->db->_escape_table($name));
+		return $this->db->query("DROP DATABASE ".$name);
 	}
 
 	// --------------------------------------------------------------------
@@ -72,6 +72,19 @@
 			
 		return $dbs;
 	}
+	
+	// --------------------------------------------------------------------
+
+	/**
+	 * Drop Table
+	 *
+	 * @access	public
+	 * @return	bool
+	 */
+	function drop_table($table)
+	{
+		"DROP TABLE IF EXISTS ".$this->db->_escape_table($name);
+	}
 
 	// --------------------------------------------------------------------
 
diff --git a/system/database/drivers/oci8/oci8_utility.php b/system/database/drivers/oci8/oci8_utility.php
index 03edcb2..7e3ee72 100644
--- a/system/database/drivers/oci8/oci8_utility.php
+++ b/system/database/drivers/oci8/oci8_utility.php
@@ -63,6 +63,18 @@
 
 	// --------------------------------------------------------------------
 
+	/**
+	 * Drop Table
+	 *
+	 * @access	public
+	 * @return	bool
+	 */
+	function drop_table($table)
+	{
+	}
+
+	// --------------------------------------------------------------------
+
     /**
      * Version number query string
      *
diff --git a/system/database/drivers/odbc/odbc_utility.php b/system/database/drivers/odbc/odbc_utility.php
index 42537de..cfd829c 100644
--- a/system/database/drivers/odbc/odbc_utility.php
+++ b/system/database/drivers/odbc/odbc_utility.php
@@ -84,6 +84,24 @@
 	// --------------------------------------------------------------------
 
 	/**
+	 * Drop Table
+	 *
+	 * @access	public
+	 * @return	bool
+	 */
+	function drop_table($table)
+	{
+		// Not a supported ODBC feature	
+		if ($this->db_debug)
+		{
+			return $this->display_error('db_unsuported_feature');
+		}
+		return FALSE;
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
 	 * Version number query string
 	 *
 	 * @access	public
diff --git a/system/database/drivers/postgre/postgre_utility.php b/system/database/drivers/postgre/postgre_utility.php
index 103f8d5..7bb210a 100644
--- a/system/database/drivers/postgre/postgre_utility.php
+++ b/system/database/drivers/postgre/postgre_utility.php
@@ -34,7 +34,7 @@
 	 */
 	function create_database($name)
 	{
-		return $this->db->query("CREATE DATABASE ".$this->db->_escape_table($name));
+		return $this->db->query("CREATE DATABASE ".$name);
 	}
 
 	// --------------------------------------------------------------------
@@ -48,7 +48,7 @@
 	 */
 	function drop_database($name)
 	{
-		return $this->db->query("DROP DATABASE ".$this->db->_escape_table($name));
+		return $this->db->query("DROP DATABASE ".$name);
 	}
 
 	// --------------------------------------------------------------------
@@ -73,6 +73,19 @@
 			
 		return $dbs;
 	}
+	
+	// --------------------------------------------------------------------
+
+	/**
+	 * Drop Table
+	 *
+	 * @access	public
+	 * @return	bool
+	 */
+	function drop_table($table)
+	{
+		"DROP TABLE ".$this->db->_escape_table($name)." CASCADE";
+	}
 
 	// --------------------------------------------------------------------
 
diff --git a/system/database/drivers/sqlite/sqlite_utility.php b/system/database/drivers/sqlite/sqlite_utility.php
index 5f1f02e..744ca3f 100644
--- a/system/database/drivers/sqlite/sqlite_utility.php
+++ b/system/database/drivers/sqlite/sqlite_utility.php
@@ -80,6 +80,23 @@
 	// --------------------------------------------------------------------
 
 	/**
+	 * Drop Table
+	 *
+	 * @access	public
+	 * @return	bool
+	 */
+	function drop_table($table)
+	{
+		if ($this->db_debug)
+		{
+			return $this->display_error('db_unsuported_feature');
+		}
+		return array();
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
 	 * Version number query string
 	 *
 	 * @access	public
